package ar.edu.unq.model;

import java.util.Date;

/**
 * TODO: description
 */
public abstract class Partido {
    Equipo equipoLocal;

    int golesLocal;

    Equipo equipoVisitante;

    int golesVisitante;

    Date fecha;

    private int id;

    private int cantidadEmpates = 0;

    public Equipo getEquipoLocal() {
        return this.equipoLocal;
    }

    public void setEquipoLocal(final Equipo equipoLocal) {
        this.equipoLocal = equipoLocal;
    }

    public int getGolesLocal() {
        return this.golesLocal;
    }

    public void setGolesLocal(final int golesLocal) {
        this.golesLocal = golesLocal;
    }

    public Equipo getEquipoVisitante() {
        return this.equipoVisitante;
    }

    public void setEquipoVisitante(final Equipo equipoVisitante) {
        this.equipoVisitante = equipoVisitante;
    }

    public int getGolesVisitante() {
        return this.golesVisitante;
    }

    public void setGolesVisitante(final int golesVisitante) {
        this.golesVisitante = golesVisitante;
    }

    public Partido() {
    };

    public Partido(final Equipo equipoLocal, final Equipo equipoVisitante) {
        this.equipoLocal = equipoLocal;
        this.equipoVisitante = equipoVisitante;
    }

    /**
     * Juego el partido con los equipos pasados como contructor
     */
    protected abstract Equipo jugar();

    /**
     * Aplica un leve beneficio al puntaje promedio del equipo local
     */
    protected int aplicarBeneficioLocalia(final int puntaje) {
        return puntaje + 1;
    }

    public Date getFecha() {
        return this.fecha;
    }

    public void setFecha(final Date fecha) {
        this.fecha = fecha;
    }

    public int getId() {
        return this.id;
    }

    public void setId(final int id) {
        this.id = id;
    }

    public int getCantidadEmpates() {
        return this.cantidadEmpates;
    }

    public void setCantidadEmpates(final int cantidadEmpates) {
        this.cantidadEmpates = cantidadEmpates;
    }

}
